/* 对应public里面的 index.js*/
import Vue from 'vue'
import App from './App.vue'
import service from './utils/service'
import router from './router/index.js'//其中，这个后缀可以省略不写

// 1. 引入你需要的组件
import { Button,CountDown,Swipe, SwipeItem,Search,List,Grid, GridItem,Icon,Form,Field,Cell, CellGroup,GoodsAction, GoodsActionIcon, GoodsActionButton,Cascader,Sidebar, SidebarItem,Popup,Card,Sticky,DropdownMenu, DropdownItem,Dialog,Toast,Empty,ShareSheet,SubmitBar,SwipeCell,Checkbox, CheckboxGroup,Stepper,AddressList,AddressEdit,Tab, Tabs            } from 'vant';
// 按钮
Vue.use(Button);
// 倒计时
Vue.use(CountDown);
// 轮播图
Vue.use(Swipe);
Vue.use(SwipeItem);
// 搜索框
Vue.use(Search);
// 列表
Vue.use(List);
// 宫格
Vue.use(Grid);
Vue.use(GridItem);
// 图标
Vue.use(Icon);
// 表单
Vue.use(Form);
// 输入框
Vue.use(Field);
// 单元格
Vue.use(Cell);
Vue.use(CellGroup);
// 商品导航
Vue.use(GoodsAction);
Vue.use(GoodsActionButton);
Vue.use(GoodsActionIcon);
// 地区的级联选择
Vue.use(Cascader);
// 侧边导航栏
Vue.use(Sidebar);
Vue.use(SidebarItem);
// 弹出层
Vue.use(Popup);
// 商品卡片
Vue.use(Card);
// 粘性定位
Vue.use(Sticky);
// DropdownMenu 下拉菜单
Vue.use(DropdownMenu);
Vue.use(DropdownItem);
// Dialog 弹出框
Vue.use(Dialog);
// 轻提示
Vue.use(Toast);
// 空状态
Vue.use(Empty);
// ShareSheet 分享面板
Vue.use(ShareSheet);
// SubmitBar 提交订单栏
Vue.use(SubmitBar);
// SwipeCell 滑动单元格
Vue.use(SwipeCell);
//Checkbox 复选框 
Vue.use(Checkbox);
Vue.use(CheckboxGroup);
// Stepper 步进器
Vue.use(Stepper);
// AddressList 地址列表
Vue.use(AddressList);
// AddressEdit 地址编辑
Vue.use(AddressEdit);
// Tab 标签页
Vue.use(Tab);
Vue.use(Tabs);

Vue.config.productionTip = false
Vue.prototype.$service = service;

// 跟实例，只有一个  render级别最高，如果它写代码就到index.html的body里面的
new Vue({
  router,//植入到根
  render: h => h(App),
}).$mount('#app')


//解决路由冗余
import VueRouter, { RouteConfig } from 'vue-router'

Vue.use(VueRouter)
// 解决ElementUI导航栏中的vue-router在3.0版本以上重复点菜单跳转当前页面报错问题
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push(location) {
  return originalPush.call(this, location).catch(err => err)
}